package com.example.security.service;

import org.springframework.security.core.Authentication;
import org.springframework.security.core.userdetails.UserDetails;

/**
 * JWT服务接口
 */
public interface JwtService {
    
    /**
     * 从token中提取用户名
     */
    String extractUsername(String token);
    
    /**
     * 生成JWT token
     */
    String generateToken(Authentication authentication);

    /**
     * 生成JWT token
     */
    String generateToken(UserDetails userDetails);
    
    /**
     * 生成刷新token
     */
    String generateRefreshToken(UserDetails userDetails);
    
    /**
     * 验证token是否有效
     */
    boolean isTokenValid(String token, UserDetails userDetails);
    
    /**
     * 验证token是否过期
     */
    boolean isTokenExpired(String token);
} 